package com.cloudbroker.bcs.platform.ltb.bizapi.t2service.social;

import com.cloudbroker.bcs.platform.ltb.bizapi.constants.IFSFunctionIds;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.viewpoint.result.*;
import com.cloudbroker.bcs.platform.ltb.bizapi.service.viewpoint.vo.*;
import com.hundsun.jresplus.remoting.impl.annotation.Service;
import com.hundsun.jresplus.remoting.impl.annotation.ServiceModule;
import com.hundsun.jresplus.remoting.impl.annotation.ServiceParam;

/**
 * Created by tianrui on 2016/7/9.
 */

@ServiceModule
public interface ViewPointT2BizService {

    /**
     * 保存观点
     * @param form
     * @return viewpointSaveResult
     */
    @Service(functionId = IFSFunctionIds.IFSLTBSocialFunIds.FUNC_VIEWPOINT_SAVE, desc = "保存观点")
    public ViewpointSaveResult funcViewpointSaveResult(@ServiceParam("param") ViewpointSaveForm form);


    /**
     * 观点展示(投顾)
     * @param form
     * @return viewpointList
     */
    @Service(functionId = IFSFunctionIds.IFSLTBSocialFunIds.FUNC_VIEWPOINT_LIST, desc = "观点展示(投顾)")
    public ViewpointList funcViewpointList(@ServiceParam("param") ViewpointQueryForm form);

    /**
     * 观点展示(粉丝)
     * @param form
     * @return viewpointList
     */
    @Service(functionId = IFSFunctionIds.IFSLTBSocialFunIds.FUNC_VIEWPOINT_RECOM_LIST, desc = "观点展示(粉丝)")
    public ViewpointRecomList funcViewpointRecomList(@ServiceParam("param") ViewpointRecomQueryForm form);

    /**
     * 观点点赞(粉丝)
     * @param form
     * @return viewpointUpvoteResult
     */
    @Service(functionId = IFSFunctionIds.IFSLTBSocialFunIds.FUNC_UPVOTE_VIEWPOINT, desc = "观点点赞")
    public ViewpointUpvoteResult funcUpvoteViewpoint(@ServiceParam("param") ViewpointUpvoteForm form);

    /**
     * 观点分享(粉丝)
     * @param form
     * @return viewpointShareResult
     */
    @Service(functionId = IFSFunctionIds.IFSLTBSocialFunIds.FUNC_SHARE_VIEWPOINT, desc = "观点分享")
    public ViewpointShareResult funcShareViewpoint(@ServiceParam("param") ViewpointShareForm form);

    /**
     * 观点修改
     * @param form
     * @return viewpointSaveResult
     */
    @Service(functionId = IFSFunctionIds.IFSLTBSocialFunIds.FUNC_UPDATE_VIEWPOINT, desc = "观点修改")
    public ViewpointSaveResult funcUpdateViewpoint(@ServiceParam("param") ViewpointUpdateForm form);

    @Service(functionId = IFSFunctionIds.IFSLTBSocialFunIds.FUNC_ADVISER_VIEWPOINT_QRY, desc = "投顾观点查询")
    public ViewpointRecomList funcQueryAdviserViewpoint(@ServiceParam("param") AdviserViewpointQueryForm form);

    @Service(functionId = IFSFunctionIds.IFSLTBSocialFunIds.FUNC_RECOMMED_VIEWPOINT_QRY, desc = "推荐观点查询")
    public ViewpointRecomList funcQueryRecommendViewpoint(@ServiceParam("param") ViewpointRecomQueryForm form);

    @Service(functionId = IFSFunctionIds.IFSLTBSocialFunIds.FUNC_VIEWPOINT_CLOSE, desc = "观点屏蔽")
    public ViewpointSaveResult funcCloseViewpoint(@ServiceParam("param") ViewPointIdForm form);

    @Service(functionId = IFSFunctionIds.IFSLTBSocialFunIds.FUNC_VIEWPOINT_CLOSE_CANCEL, desc = "观点屏蔽取消")
    public ViewpointSaveResult funcCancelCloseViewpoint(@ServiceParam("param") ViewPointIdForm form);

    @Service(functionId = IFSFunctionIds.IFSLTBSocialFunIds.FUNC_VIEWPOINT_DETAIL, desc = "观点屏蔽取消")
    public ViewpointDetailResult funcViewpointDetail(@ServiceParam("param") ViewPointIdForm form);

    @Service(functionId = IFSFunctionIds.IFSLTBSocialFunIds.FUNC_VIEWPOINT_TAG_LIST, desc = "观点标签")
    public ViewpointTagListResult funcQueryViewpointTagList(@ServiceParam("param") ViewpointTagQueryForm form);

    @Service(functionId = IFSFunctionIds.IFSLTBSocialFunIds.FUNC_VIEWPOINT_TOPIC_LIST, desc = "观点话题")
    public ViewpointTopicListResult funcQueryViewpointTopicList(@ServiceParam("param") ViewpointTopicQueryForm form);

    @Service(functionId = IFSFunctionIds.IFSLTBSocialFunIds.FUNC_SAVE_VIEWPOINT_TOPIC, desc = "观点话题add")
    public ViewpointTopicSaveResult funcSaveViewpointTopic(ViewpointTopicSaveForm form);

    @Service(functionId = IFSFunctionIds.IFSLTBSocialFunIds.FUNC_UPDATE_VIEWPOINT_TOPIC, desc = "观点话题update")
    public ViewpointTopicSaveResult funcUpdateViewpointTopic(ViewpointTopicUpdateForm form);

    @Service(functionId = IFSFunctionIds.IFSLTBSocialFunIds.FUNC_CLOSE_VIEWPOINT_TOPIC, desc = "观点话题close")
    public ViewpointTopicSaveResult funcCloseViewpointTopic(ViewpointTopicCloseForm form);

    @Service(functionId = IFSFunctionIds.IFSLTBSocialFunIds.FUNC_CLOSE_VIEWPOINT_TAG, desc = "观点标签close")
    public ViewpointTagSaveResult funcCloseViewpointTag(ViewpointTagCloseForm form);

    @Service(functionId = IFSFunctionIds.IFSLTBSocialFunIds.FUNC_UPDATE_VIEWPOINT_TAG, desc = "观点标签更新")
    public ViewpointTagSaveResult funcUpdateViewpointTag(ViewpointTagUpdateForm form);

    @Service(functionId = IFSFunctionIds.IFSLTBSocialFunIds.FUNC_SAVE_VIEWPOINT_TAG, desc = "观点话题保存")
    public ViewpointTagSaveResult funcSaveViewpointTag(ViewpointTagForm form);

    @Service(functionId = IFSFunctionIds.IFSLTBSocialFunIds.FUNC_VIEWPOINT_TOPIC_DETAIL, desc= "观点话题详情")
    public ViewpointTopicDetailResult funcViewpointTopicDetail(ViewpointTopicDetailForm form);

    @Service(functionId =  IFSFunctionIds.IFSLTBSocialFunIds.FUNC_VIEWPOINT_SEARCH, desc = "观点搜索")
    public ViewpointRecomList funcViewpointSearch(ViewpointQueryForm form);

}
